In a content-based approach the role of the DSL metamodel of the projects in the repository is more prominent, since it takes into account the relationships between the various artifacts. The index structure usually reflects this new amount of information considered. Queries are usually expressed by providing a model fragment, following a Query-By-Example approach. Usually a kind of structural similarity matching algorithm is performed, like graph matching. The query syntax must conform to the same metamodel of the language of the projects in the repository. The DSL metamodel can be used during matching to provide some domain-specific information to tune the quality of the ranked result list.

\emph{SECOLD} (Source code ECOsystem Linked Data) \cite{Keivanloo:2011:TSS:1985429.1985436} is a framework that provides source code and facts usable by both humans and machines for browsing and querying. Currently this framework provides line-level and statement-level granularity for the presentation and syntax layer respectively. It adheres to the Linked Data publication standard so that the repository is available online in both HTML and RDF/XML formats. This framework provides a way to uniquely identify resources while they are being analyzed across different tools by agreeing on a common naming format. This way a resource can be identified anytime, independently on the specific naming convention or ID format of each analysis tool. It also provides a set of public services for URL generation and data conversion from source code and version control systems.

\emph{Moogle} \cite{Lucredio:2008:MMS:1434657.1434689} is a model search engine that uses UML or some DSL (Domain Specific Language) meta-model in order to create indexes for evaluation of complex queries. Its key features include searching through different kind of models, as long as their metamodel is provided. The index is built automatically and the system tries to present only the relevant part of the results, for example trying to remove the XML tags or other unreadable characters to improve readability. The model elements type, attributes and hierarchy between model elements can be used as a search criteria. Models are searched by using keywords, by specifying the types of model elements to be returned and by using filters organized into facets. Moogle uses the Apache Solr ranking policy of the results. The most important information of the results are highlighted to make them more clear to the user.

The work described in \cite{conf/icwe/BislimovskaBBF11} uses a graph representation able to harness the power of models with the flexibility of adapting to the syntax and semantics of various modeling languages. First the method translates the given models in the repository  into directed graphs. Then, a query conforming to the considered DSL metamodel is submitted to the system. This query is also transformed in a graph in order to reduce the matching problem into a graph matching one. Matches are calculated by finding a mapping between the query graph and the project graphs or sub-graphs, depending on the granularity. The results are ranked using the graph edit distance metric by means of the A-Star algorithm. The prototype considers the case of the domain-specific WebML language.

The paper in \cite{Zhuge2002445} presents an inexact matching approach for workflow process reuse. The matching degree between two workflow processes is determined by the matching degrees of their corresponding sub-processes or activities. The matching degree of two activities is determined by the activity-distance between them in an activity-ontology repository. Users are provided with SQL-like commands to specify inexact query conditions to retrieve the required processes from the workflow-ontology repository.

Nowick et al. \cite{nowick05} introduce a model search engine that tries to help users to improve their queries. It uses logs coming from several search engines belonging to three different environments to model users' session characteristics by cluster analysis. An example of session is that of hit and run users who briefly browse results about popular topics. This characteristics are used to improve the search process: in case of a failed search or when the search engine returns more than 100 or less than 1 result, the system suggests the user to try the advanced smart search to narrow down or improve the results adding other terms from the same cluster of the original term. In the case of narrow search, the terms from other clusters are also suggested.

The paper in \cite{Awad:2008:SQB:1437901.1438838} introduces an approach for finding similarity between business process models. This method assumes an ideal case in which process models are enriched with annotations describing their meaning. This approach uses the BPMN-Q query language expansion which allows users to make structure related model queries. The BPMN-Q expansion applies the enhanced Topic-based Vector Space Model, a vector space model that is able to exploit semantic document similarities via WordNet. The system constructs an ontology from the repository and expands the BPMN-Q query by constructing other queries. Those other queries are based on the substitution of the seed query activities with similar ones.

BP-QL is a visual query language for querying business processes \cite{Beeri:2006:QBP:1182635.1164158}. It allows users to specify a query in the same way they specify the model, hiding the XML details. It permits to query over various granularity levels. Business processes are represented as directed labeled graphs.

The paper in \cite{Syeda-Mahmood:2005:SSR:1090954.1092135} proposes the use of domain-independent and domain-specific ontologies for retrieving a web service from a repository by enriching web service descriptions with semantic associations. The domain-independent relationships are derived using an English thesaurus after tokenization and POS (Part Of Speech) tagging. The domain-specific ontological similarity is determined by associating semantic relationships with web service descriptions. Domain-independent terms allow for a wide coverage, while domain-specific ontological information allow for more in-depth finding exploiting industry and application specific terms. Matches due to the two ontologies are combined to determine an overall semantic similarity score. 

The work in \cite{Gomes:2004:UWC:992846.992849} provides a centralized knowledge base that can be used through case-based reasoning, a paradigm that reuses past knowledge stored in the form of cases. In this context, a case is a UML diagram enriched with some identifiers. It uses WordNet as a common sense ontology to provide classification of software projects described in UML.

\emph{ReDSeeDS} (Requirements-Driven Software Development System) \cite{Bildhauer:2009:SSR:1564596.1564646} is a web search engine designed to support reuse of software artifacts based on their requirements. The syntax of the artifacts is described by an Essential MOF (EMOF) while the requirements are specified by the Requirements Specification Language (RSL). The components of the RSL are requirement statements and use cases. The requirements statements are specified by natural language sentences, and the use cases are described by scenarios containing statements in structured English. The similarity of requirements is determined by combining information retrieval methods and similarity measures considering the semantic and word order similarity, as well as the structural similarity.
